package com.yuand.service;

import com.yuand.entity.SysMenu;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 菜单表 服务类
 * </p>
 *
 * @author yuandong
 * @since 2022-01-15
 */
public interface SysMenuService extends IService<SysMenu> {


    /**
     * 根据用户查询系统菜单列表
     *
     */
    public List<SysMenu> selectMenuList(Long userId);



    /**
     * 查询菜单表所有记录
     * @return
     */
    List<SysMenu> selectMenuList(SysMenu menu,Long userId);


    /**
     * 判断菜单名是否重复
     * @param sysMenu
     * @return
     */
    public boolean checkMenuNameUnique(SysMenu sysMenu);

    /**
     * 保存菜单
     * @param sysMenu
     * @return
     */
    public int addMenu(SysMenu sysMenu);


    /**
     * 根据menuId查询菜单
     * @param menuId
     * @return
     */
    public SysMenu selectByMenuId(Long menuId);


    /**
     * 修改菜单
     * @param sysMenu
     * @return
     */
    public int updateMenu(SysMenu sysMenu);

    /**
     * 查询该菜单是否含有子菜单
     * @param menuId
     * @return
     */
    public boolean hasChildByMenuId(Long menuId);

    /**
     * 查询该菜单是否已经关联角色
     * @param menuId
     */
    public boolean checkMenuExistRole(Long menuId);

    /**
     * 删除菜单
     * @param menuId
     * @return
     */
    public int  delMenu(Long menuId);
}
